package api

import (
	_ "awesomeProject2/model"
	"awesomeProject2/utils"
	"fmt"
	_ "fmt"
	"github.com/gin-gonic/gin"
	_ "log"
	"net/http"
	_ "os"
	"strings"
)

//func Upload(c *gin.Context) {
//	file, err := c.FormFile("file")
//	if err != nil {
//		c.JSON(http.StatusInternalServerError, gin.H{
//			"message": err.Error(),
//		})
//		return
//	}
//
//	log.Println(file.Filename)
//	dst := "static/upload/" + time.Now().Format("2006/01/02")
//	err = os.MkdirAll(dst, 777)
//	if err != nil {
//		fmt.Println(err)
//	}
//	// 上传文件到指定的目录
//	c.SaveUploadedFile(file, dst)
//	model.OkWithData(gin.H{"url": dst}, c)
//}

func Upload(c *gin.Context) {
	if form, err := c.MultipartForm(); err == nil {
		//1.获取文件
		files := form.File["file"]
		var url []string
		var filePath string
		//2.循环全部的文件
		for _, file := range files {
			// 3.根据时间鹾生成文件名
			//fileNameInt := time.Now().Unix()
			//fileNameStr := strconv.FormatInt(fileNameInt, 10)
			//4.新的文件名(如果是同时上传多张图片的时候就会同名，因此这里使用时间戳加文件名方式)
			//fileName := fileNameStr + file.Filename
			//5.保存上传文件
			//filePath := filepath.Join(utils.Mkdir("upload"), "/", fileName)
			//c.SaveUploadedFile(file, filePath)
			filePath, _, err = utils.UploadFile(file)
			if err != nil {
				panic(err)
			}
			fileUrl := fmt.Sprintf("/api/%s", filePath)
			url = append(url, fileUrl)
		}
		c.JSON(http.StatusOK, gin.H{
			"meta": gin.H{"msg": "上传成功", "status": http.StatusOK},
			"data": gin.H{"url": strings.Join(url, ",")},
		})
	} else {
		c.JSON(http.StatusOK, gin.H{
			"code":    0,
			"message": "获取数据失败",
		})
	}
}
